万卷网> 蓝桥竞赛 >蓝桥Python > 2024年3月蓝桥杯蓝桥Python(STEMA)中/高级

2024年3月蓝桥杯蓝桥Python(STEMA)中/高级
STEMA 2024 2025-06-08 14:41:10 104

一、单选题

1.

执行 print('1'+'3') 语句后,输出的结果是()。

A.

13

B.

1+3

C.

4

D.

111

2.

下列函数中,哪一个可以在列表末尾添加元素?()。(十五届STEMA)

A.

add()

B.

append()

C.

pop()

D.

remove()

3.

下列函数中,哪一个可以在列表末尾添加元素?()。

A.

add()

B.

append()

C.

pop()

D.

remove()

4.

下列数据类型,不可以直接使用索引(下标)访问其元素的是()。

A.

字符串

B.

列表

C.

集合

D.

元组

5.

已知 s='onnopythonno',执行 print(s.rstrip('on')) 语句后,输出的结果是()。

A.

onnopythonno

B.

onnopython

C.

onnopyth

D.

pyth

二、编程题

1.

字符串首尾相连

编程实现:

给定一个字符串,将第一个字符与最后一个字符拼接后输出。

输入描述:

输入一个长度不超过20的字符串

输出描述:

输出一个字符串,表示输入字符串的第一个字符与最后一个字符拼接后的结果


样例输入:

abcde

样例输出:

ae
2.

ABB 字符串

提示信息:

ABB 形式的字符串:是由 3 个字符组成,其中后两个字符相同,第一个字符与后两个字符不同。

如:"cbb"、"q22"、"688" 都是 ABB 形式的字符串;"abc"、"wwe"、"pop" 都不是 ABB 形式的字符串。

子串:是指一个字符串中连续的一段字符序列。

如:字符串 "HelloWorld!" 中,"Hello"、"ello"、"World"、"or" 都是该字符串的子串。

编程实现:

给定一个字符串 S,请统计 S 中有多少个 ABB 形式的子串,以及多少种 ABB 形式的子串。

例如:S = "nnnseebbetoosee",ABB 形式的子串有 see、ebb、too、see,共 4 个;ABB 形式的不同子串有 see、ebb、too,共 3 种。

输入描述:

输入一个长度不超过 100 的字符串 S

输出描述:

输出两个整数,分别表示 S 中有多少个 ABB 形式的子串,以及多少种 ABB 形式的子串,整数之间以一个空格隔开


样例输入:

nnnseebbetoosee

样例输出:

4 3
3.

最多字母路径

编程实现:

有一个 N 行 N 列的网格,网格里的每个格子都有一个字母,每个字母只能是 p、y、t、h、o、n 中的字母。

一台机器人按照以下规则移动:

1、起始位置可以选择网格中任意一个格子,起始位置的字母不一定为 p;

2、每次只能向上下左右相邻的任意一个格子移动一格,并且经过的格子不能再次经过;

3、每次移动的格子中的字母必须按照以下环形的顺序,如下图所示:

例如:当前字母为 t,那么移动的下一个格子中的字母必须为 h。

给定 N 行 N 列的网格,请计算机器人最多可以经过多少个字母。

例如:N = 4,4 行 4 列的网格中的字母如左图,可经过最多字母的移动路径如右图:

以第三行第二列的 h 作为起始位置,按照 h→o→n→p→y→t→h 的顺序移动,机器人经过的字母最多,可以经过 7 个字母。

输入描述:

第一行输入一个整数 N(2≤N≤50),表示网格的行数和列数

接下来输入 N 行,每行 N 个字母,每个字母只能是 p、y、t、h、o、n 中的字母,字母之间以一个空格隔开

输出描述:

输出一个整数,表示机器人最多可以经过多少个字母


样例输入:

4
y n p p
t o y t
n h p h
n h o t

样例输出:

7
4.

整数拆分

编程实现:

给定一个整数n,将n分成两个正整数,使得两个正整数的和等于n且尽可能接近。

输入描述:

输入一个整数n(3≤n≤1000)

输出描述:

按从小到大的顺序输出两个正整数,整数之间以一个空格隔开


样例输入:

5

样例输出:

2 3
5.

n个连续的y

编程实现:

给定一个整数n,输出n个连续的y。

输入描述:

输入一个整数n(1≤n≤20)

输出描述:

输出n个连续的y


样例输入:

5

样例输出:

yyyyy
6.

青蛙跳格子

编程实现:

有 71 个大小相等的格子从左到右排成一排,编号从 0 到 70,其中 N 个格子有荷叶,初始时青蛙在编号为 0 的格子。青蛙要按照以下规则,跳到最后一个有荷叶的格子:

1、青蛙每次最少跳 1 格,最多跳 x 格;

2、青蛙每次只能跳到有荷叶的格子;

3、青蛙不能往回跳。

给定 N 个有荷叶的格子编号,以及青蛙每次最多可以跳的格子数 x。请计算青蛙一共有多少种不同的方式跳到最后一个有荷叶的格子,如果青蛙不能跳到最后一个有荷叶的格子,输出 0。

例如:N = 4,x = 3,4 个有荷叶的格子编号依次为 1、3、4、6,青蛙每次最多跳 3 格;

青蛙有以下不同的方式跳到最后一个有荷叶的格子(6 号格子):

第一种:先跳到编号 1 的格子,接着跳到编号 3 的格子,再跳到编号 4 的格子,最后跳到编号 6 的格子;

第二种:先跳到编号 1 的格子,再跳到编号 3 的格子,最后跳到编号 6 的格子;

第三种:先跳到编号 1 的格子,再跳到编号 4 的格子,最后跳到编号 6 的格子;

第四种:先跳到编号 3 的格子,再跳到编号 4 的格子,最后跳到编号 6 的格子;

第五种:先跳到编号 3 的格子,最后跳到编号 6 的格子。

青蛙一共有 5 种不同的方式跳到最后一个有荷叶的格子。

输入描述:

第一行输入一个整数 N(3 ≤ N ≤ 30),表示有荷叶的格子数

第二行按从小到大的方式输入 N 个互不相同的整数(1 ≤ 整数 ≤ 70),表示有荷叶的格子编号,整数之间以一个空格隔开

第三行输入一个整数 x(1 ≤ x ≤ 5),表示青蛙每次最多可以跳的格子数

输出描述:

输出一个整数,表示青蛙一共有多少种不同的方式跳到最后一个有荷叶的格子


样例输入:

4
1 3 4 6
3

样例输出:

5
公众号
客服 反馈
顶部